//
// Created by 17775 on 2024/10/17.
//

#ifndef RAYCI_SINGLE_POWERPROFILE_H
#define RAYCI_SINGLE_POWERPROFILE_H

#include "RayCiPro_C.h"
#include <vector>
#include <memory>
#include "../utils/PowerProfileData.h"

class Single_PowerProfile: public QObject {
Q_OBJECT

signals:
    void refreshCenter(double x_pos, double y_pos);

public:
    int _iSingleDocId = 0;
    std::shared_ptr<PowerProfileData<std::vector<float>>> getPowerProfileData();

    bool _bIsGettingPowerPosition = false;
    double _positionX_px = 0;
    double _positionY_px = 0;
    double x_pos = 0;
    double y_pos = 0;

    double getCursorPosition() const;
    void setPosition_px(const QString& unit, double sizeX, double sizeY, double dPosX, double dPosY);
    double unitConversion(const QString& unit, double size);
    double getSinglePowerFraction();
    void setCursorPosition(double pos) const;
    void setCursorPowerFraction(double dFraction) const;
    QString getUnitSpatial() const;
    double getViewCenterXPosition_px();
    double getViewCenterYPosition_px();

private:

};


#endif //RAYCI_SINGLE_POWERPROFILE_H
